 1  ONERR  GOTO 40000
 2  DIM KA%(8),KB%(8),KC%(8),OB$(9),OB%(9,6)
 3  POKE 7471,0
 10  &  READ "USER.PLAYER": INPUT NM$,NA%,NU%,CY%,CX%,CL%,RA
 20  FOR I = 1 TO 8: INPUT KA%(I),KB%(I),KC%(I): NEXT I
 30  INPUT GP%,XP%,AR%,PA%,PR%,EN%,OB%,LP%
 40  IF OB% = 0 THEN 90
 50  FOR I = 1 TO OB%: INPUT OB$(I): FOR J = 1 TO 6: INPUT OB%(I,J): NEXT J: NEXT I
 90  &  END 
 91  IF NA% = 0 THEN COM$ = "COM-" +  STR$ (NU%): &  RECALL COM$,22707:A$ = "DJN." +  STR$ (NU%):DJN$ = A$: POKE 18771,NU% + 4: GOTO 93
 92 A$ = "MAP." +  STR$ (NU%):MAP$ = A$: POKE 18767,NU%
 93  POKE 18766,NA%: &  RECALL A$,20224: POKE 23,CY%: POKE 24,CX%
 94  IF CL% < 3 THEN SP% = 34 + CL%: GOTO 99
 95 SP% = 30 + CL%
 99  POKE 16476,SP%: REM SPRITE PERSO 
 100 CO% = 0: DEF  FN S(X) =  RND (1) * X * (X + 5)
 110  DIM SO$(9),SO%(10,5,2),PI$(6),PI%(6,4),CH$(10),MO$(6),ST$(3),EQ$(20),EQ%(20,6),TR%(9,2)
 120  FOR I = 0 TO 9: READ SO$(I): NEXT I
 130  FOR I = 1 TO 3: READ ST$(I): NEXT I
 140  FOR I = 1 TO 6: READ PI$(I): NEXT I
 150  FOR I = 0 TO 7: READ CH$(I): NEXT I
 160  FOR I = 1 TO 6: READ MO$(I): NEXT I
 170  FOR I = 1 TO 20: READ EQ$(I): FOR J = 1 TO 6: READ EQ%(I,J): NEXT J: NEXT I
 200 PK = 8064: REM  SPELLS
 210  FOR I = 1 TO 10: FOR J = 1 TO 5:SO%(I,J,1) =  PEEK (PK):SO%(I,J,2) =  PEEK (PK + 1):PK = PK + 2: NEXT J: NEXT I
 300 PK = 8165: REM TRAPS
 310  FOR I = 1 TO 6: FOR J = 1 TO 4:PI%(I,J) =  PEEK (PK):PK = PK + 1: NEXT J: NEXT I
 320  FOR I = 1 TO 9: FOR J = 1 TO 2: READ TR%(I,J): NEXT J: NEXT I
 1000  DATA Paralysie,Gu{rison,Eclair,Puissance,Vitesse,Protection,Exorcisme,Adresse,D{tection,Faiblesse
 1010  DATA Assez loin,Assez proche,Tres proche
 1020  DATA Une fosse,Un pi}ge @ feu,Un pi}ge @ loup,Des dards,Des gazs nocifs,Un bloc broyeur
 1030  DATA Combattre,Changer d'arme,Sort,Utiliser,Avancer,Reculer,R{dition,d{trousser
 1040  DATA Il rend son der-nier souffle,Il va rejoindre ses anc~tres,Il mord la pous-si}re,Il succombe dansun dernier rale,Sa derni}re heu-re est venue,Cette charogne  finit par crever
 1050  DATA Crane,41,0,0,0,0,0
 1060  DATA Clef,42,0,0,0,0,0
 1070  DATA Parchemin,43,0,0,0,0,0
 1080  DATA Princesse,44,0,0,0,0,0
 1090  DATA Muryaden,45,10000,0,0,0,0
 1100  DATA Ceinture,47,0,0,0,0,0
 1110  DATA Masse lourde,2,60,22,10,10,6
 1120  DATA Ep{e,1,30,20,15,8,8
 1130  DATA Trident,1,25,20,17,9,7
 1140  DATA Fouet,1,50,20,20,9,5
 1150  DATA Potion 1,20,10,0,0,20,1
 1160  DATA Baguette,30,500,15,0,1,7
 1170  DATA Parchemin 1,20,10,15,0,20,6
 1180  DATA Peau de Wyrm,10,100,15,10,4,1
 1190  DATA Aegis,3,100,15,10,8,1
 1200  DATA Cestes,0,150,20,15,8,8
 1210  DATA Double fl{au,2,120,25,20,16,6
 1220  DATA Anneau FOR,20,170,10,10,5,15
 1230  DATA Prisme AURA,20,200,15,10,5,25
 1240  DATA Hache-rang,5,350,20,15,10,10
 1250  REM  TRESORS
 1260  DATA  80,0,120,0,0,15,100,0,0,16,0,17,0,18,0,19,0,20
 1900  GOTO 4000
 2000 B$ = ""
 2010  GET C$
 2020  IF  ASC (C$) = 13 THEN  RETURN 
 2025  IF  ASC (C$) = 8 AND  LEN (B$) > 0 THEN 2080
 2030  IF  ASC (C$) < L1% OR  ASC (C$) > L2% THEN 2010
 2040  PRINT C$;
 2050 B$ = B$ + C$
 2060  IF  LEN (B$) = L3% THEN  RETURN 
 2070  GOTO 2010
 2080 P% =  PEEK (36) - 1
 2090  POKE 36,P%: PRINT "  ";: POKE 36,P%
 2100  IF  LEN (B$) = 1 THEN B$ = "": GOTO 2010
 2110 B$ =  LEFT$ (B$, LEN (B$) - 1)
 2120  GOTO 2010
 2200  REM  PRINCESSE
 2210  PRINT : PRINT "La princesse"
 2220  IF CO% <  > 0 THEN 2300
 2225  IF KC%(5) < 5 THEN  PRINT "Pas touche, pinede nain.": GOTO 27500
 2230  PRINT "Vous compl{tez  son {ducation.  Sa langue est   un peu rapeuse, mais la succion est convenable."
 2240  PRINT : PRINT "Vitalit{..:-5":KC%(5) = KC%(5) - 5
 2290  PRINT "Exp{rience:+15":XP% = XP% + 15: GOTO 4150
 2300  IF US% = 3 THEN  PRINT "Elle vous fait  un bras d'hon-  neur !!!": GOTO 10010
 2305 US% = US% + 1
 2310  PRINT "s'interpose et  lutte au corps @corps avec votreennemi. Elle    triomphe et re- vient les jambesarqu{es!"
 2370  POKE 18780,1: GOTO 4150
 2400  REM  PARCH
 2410  PRINT : PRINT "Parchemin"
 2420  PRINT "Le maitre n'est jamais bien loindes disciples"
 2430  GOTO 27200
 2500  REM  SAUVE LE JEU
 2510 PL$ = "PLAYER": GOSUB 3000: GOTO 3071
 2600  CALL 50688
 3000  REM  SAUVEGARDE
 3002  IF XP% > 9999 THEN XP% = 9999
 3004  IF GP% > 9999 THEN GP% = 9999
 3010 A =  USR (0): &  DEL PL$: &  DEF PL$,2: &  PRINT PL$
 3020  PRINT NM$:NA% =  PEEK (18766): PRINT NA%: IF NA% = 1 THEN  PRINT  PEEK (18767): GOTO 3030
 3025  PRINT  PEEK (18771) - 4
 3030  PRINT  PEEK (23): PRINT  PEEK (24): PRINT CL%: PRINT RA: FOR I = 1 TO 8: PRINT KA%(I): PRINT KB%(I): PRINT KC%(I): NEXT I
 3040  PRINT GP%: PRINT XP%: PRINT AR%: PRINT PA%: PRINT PR%: PRINT EN%: PRINT OB%: PRINT LP%
 3050  IF OB% = 0 THEN 3070
 3060  FOR I = 1 TO OB%: PRINT OB$(I): FOR J = 1 TO 6: PRINT OB%(I,J): NEXT J: NEXT I
 3070  &  END : RETURN 
 3071  IF NA% = 0 THEN CR$ = DJN$: &  DEL DJN$: &  STORE DJN$,20224,2483: GOTO 3073
 3072 CR$ = MAP$: &  DEL MAP$: &  STORE MAP$,20224,2483
 3073  FOR I = 1 TO 3:AA$ = "MAP-" +  STR$ (I):BB$ = "DJN-" +  STR$ (I): &  DEL AA$: &  DEL BB$: NEXT I
 3074  &  DEL "MAP-4"
 3075  FOR I = 1 TO 4:AA$ = "MAP." +  STR$ (I):BB$ = "MAP-" +  STR$ (I): &  RECALL AA$,20224: &  STORE BB$,20224,2483: NEXT I
 3076  FOR I = 1 TO 3:AA$ = "DJN." +  STR$ (I):BB$ = "DJN-" +  STR$ (I): &  RECALL AA$,20224: &  STORE BB$,20224,2483: NEXT I
 3080  &  RECALL CR$,20224
 3099 A =  USR (1): GOTO 4150
 3500 V% = 0
 3510  IF OB% = 0 THEN 4150
 3520  FOR I = 1 TO OB%
 3530  IF OB%(I,1) = 42 THEN V% = 1
 3540  NEXT I
 3550  IF V% = 1 THEN 3600
 3555  & MUSIC1,0,15: PRINT "T'as pas la clefT~te de nain !!"
 3560  GOTO 4150
 3600  REM  SI ON A LA CLEF, FAIRE CALL OPENDOOR
 3610  PRINT "La porte s'ouvre"
 3620  CALL 19324: REM OPENDOOR
 3630  GOTO 4150
 4000  REM  MAIN
 4100 A =  USR (1):A =  USR (3)
 4110  & SCRN1,1: & CADRE: & WINDOW24,16,8,24: HTAB 25: VTAB 24
 4120  GOSUB 26100
 4140  CALL 16384
 4150 CO% = 0: GOSUB 26200
 4155  CALL 16640
 4160 PC% =  PEEK (18770)
 4170  ON PC% GOTO 4175,4190,4200,4600,15030,10400,10300,15000,15100,5000,2500,17000,30000,3500
 4175 A =  USR (0): &  DEL MAP$: &  STORE MAP$,20224,2483
 4180 MAP$ = "MAP." +  STR$ ( PEEK (18767)): &  RECALL MAP$,20224:A =  USR (1): GOTO 4140
 4190 M% =  PEEK (18769): FOR I = 1 TO 6:M1%(1,I) =  PEEK (19803 + M% + 30 * (I - 1)):M1%(0,I) = M1%(1,I): NEXT I
 4195  FOR I = 7 TO 14:M2%(1,I - 6) =  PEEK (19803 + M% + 30 * (I - 1)):M2%(0,I - 6) = M2%(1,I - 6): NEXT I
 4196  GOTO 20000
 4200 A =  USR (0): &  DEL MAP$: &  STORE MAP$,20224,2483
 4210 PC% =  PEEK (18771): ON PC% GOTO 4300,4300,4300,4300,4500,4500,4500
 4300  REM VILLES+CHATEAU
 4310 PL$ = "USER.PLAYER": GOSUB 3000: REM   SAUVEGARDE PERSO 
 4320 TWN$ = "TOWN-" +  STR$ (PC%): &  RUN TWN$,24576
 4500 PC% = PC% - 4:COM$ = "COM-" +  STR$ (PC%):DJN$ = "DJN." +  STR$ (PC%): &  RECALL COM$,22707: &  RECALL DJN$,20224:A =  USR (1): GOTO 4140
 4600  REM QUITTER DONJON
 4610 A =  USR (0): &  DEL DJN$: &  STORE DJN$,20224,2483: GOTO 4180
 5000  REM  OUVRIR COFFRE
 5005 AD% = 17143
 5010 V% =  PEEK (18781): PRINT 
 5020  IF TR%(V%,1) <  > 0 THEN  PRINT "Vous trouvez :": PRINT TR%(V%,1);" PO":GP% = GP% + TR%(V%,1): PRINT : GOSUB 26200
 5030  IF TR%(V%,2) <  > 0 THEN W% = TR%(V%,2): GOTO 16000
 5040  GOTO 16120
 5100  REM   SI DE LA PLACE POUR 1 OBJET EN PLUS, CALL COFFRVID
 8000  FOR I = 1 TO 6:OB%(0,I) = 0: NEXT I
 8010  PRINT "Armure : ";
 8020  GOSUB 27400: IF A$ = "0" THEN PR% = 0: GOTO 8100
 8030  IF OB%(V%,1) <  > 10 THEN 8020
 8040  IF OB%(V%,3) > KC%(3) OR OB%(V%,4) > KC%(4) THEN 8020
 8070 PR% = V%
 8080  PRINT : PRINT OB$(V%)
 8100  PRINT "Arme : ";
 8105  GOSUB 27400: IF A$ = "0" THEN AR% = 0: GOTO 8200
 8110  IF OB%(V%,1) > 5 OR OB%(V%,1) < 0 OR OB%(V%,1) = 3 THEN 8105
 8140  IF OB%(V%,3) > KC%(3) OR OB%(V%,4) > KC%(4) THEN 8105
 8150 AR% = V%: PRINT : PRINT OB$(V%)
 8170  IF OB%(V%,1) = 2 OR OB%(V%,1) = 4 THEN PA% = 0: GOTO 8290
 8200  PRINT "Bouclier : ";
 8205  GOSUB 27400: IF A$ = "0" THEN PA% = 0: GOTO 8290
 8240  IF OB%(V%,1) <  > 3 THEN 8205
 8250  IF OB%(V%,3) > KC%(3) OR OB%(V%,4) > KC%(4) THEN 8205
 8260 PA% = V%
 8270  PRINT : PRINT OB$(V%)
 8290 EN% = OB%(PA%,6) + OB%(PR%,6): RETURN 
 8300  REM  JETER
 8305  PRINT "Jeter : ";
 8310  GOSUB 27400: IF A$ = "0" THEN  RETURN 
 8315  IF V% = AR% OR V% = PA% OR V% = PR% THEN 8310
 8320  PRINT : PRINT OB$(V%)
 8330  PRINT "D'accord(O/N)";
 8340  GET A$
 8350  IF A$ = "N" THEN 8450
 8360  IF A$ = "O" THEN 8380
 8370  GOTO 8340
 8380 OB% = OB% - 1
 8384  IF PA% > V% THEN PA% = PA% - 1
 8385  IF AR% > V% THEN AR% = AR% - 1
 8386  IF PR% > V% THEN PR% = PR% - 1
 8390  IF OB% = 0 OR V% = OB% + 1 THEN 8440
 8400  FOR I = V% TO OB%
 8410 OB$(I) = OB$(I + 1)
 8420  FOR J = 1 TO 6:OB%(I,J) = OB%(I + 1,J): NEXT J
 8430  NEXT I
 8440  FOR I = OB% + 1 TO 9:OB$(I) = "": NEXT I
 8450  PRINT : RETURN 
 10000  REM COMBAT
 10010  GOSUB 26200
 10015  IF KC%(4) < EN% THEN KC%(4) = EN%
 10020  IF KC%(5) < 0 THEN  PRINT : PRINT "Vous ~tes mort": GOTO 18000
 10030 P% =  PEEK (37) + 2: IF P% = 25 THEN  PRINT :P% = 24
 10040 V% = 0
 10050  VTAB P%: HTAB 1: PRINT  SPC( 15): HTAB 1: PRINT CH$(V%);
 10060  GET A$:PC% =  PEEK ( - 16384)
 10070  IF PC% = 21 THEN V% = V% + 1: IF V% > 7 THEN V% = 0
 10080  IF PC% = 8 THEN V% = V% - 1: IF V% < 0 THEN V% = 7
 10090  IF PC% = 13 THEN 10110
 10100  GOTO 10050
 10110  VTAB P%: HTAB 1: PRINT  SPC( 15);: HTAB 1
 10150  ON V% + 1 GOTO 27100,10200,10300,10400,10500,10600,10720,10800
 10200  GOSUB 8100
 10210  GOTO 27200
 10300  REM  SORT
 10310  PRINT "Sort : ";: GET A$:S1% =  VAL (A$)
 10320  IF S1% > 9 OR S1% < 0 THEN  PRINT : GOTO 27500
 10330  PRINT : PRINT SO$(S1%);" : ";: GET A$:S2% =  VAL (A$)
 10340  IF S2% < 1 OR S2% > 5 THEN  PRINT : GOTO 27500
 10350  IF SO%(S1%,S2%,1) > KC%(1) OR SO%(S1%,S2%,2) > KC%(2) THEN  PRINT : GOTO 27500
 10360  IF KC%(6) < S2% THEN 27500
 10370 PM% = S2%: PRINT PM%: PRINT 
 10380  ON S1% + 1 GOTO 14900,14010,14100,14200,14300,14400,14500,14600,14700,14800
 10400  REM   UTILISER  
 10410  PRINT "Utiliser : ";
 10415  GOSUB 27400: IF A$ = "0" THEN 27500
 10430  IF OB%(V%,1) = 44 THEN 2200
 10435  IF OB%(V%,1) = 43 THEN 2400
 10445  IF OB%(V%,3) > KC%(1) OR OB%(V%,4) > KC%(2) THEN 10415
 10450  IF OB%(V%,1) = 20 THEN  PRINT : GOTO 21010
 10460  IF OB%(V%,1) = 30 THEN  PRINT : GOTO 21500
 10480  GOTO 10415
 10500  PRINT "Vous avancez": REM  AVANCER
 10510  IF CO% = 3 THEN 10590
 10520  IF CO% <  > 1 THEN 10560
 10530  IF M2%(0,1) < M2%(1,1) THEN 10570
 10540  IF M1%(0,6) = 0 OR M1%(0,6) = 5 OR M1%(0,6) = 6 THEN 10580
 10560  IF CO% = 2 AND M2%(1,8) > M2%(1,7) THEN 10580
 10570  IF  RND (1) * M2%(0,4) >  =  RND (1) * (KC%(4) - EN%) THEN 10590
 10580  PRINT "avec succ}s": & NOISE10,40,10:CO% = CO% + 1: GOTO 27200
 10590  PRINT "sans succ}s": GOTO 27200
 10600  REM  RECULER
 10610  PRINT "Vous reculez"
 10620  IF CO% = 1 AND M2%(1,8) < M2%(1,7) THEN 10690
 10630  IF  RND (1) * M2%(0,4) <  RND (1) * (KC%(4) - EN%) THEN 10690
 10680  PRINT "sans succ}s": GOTO 10710
 10690  PRINT "avec succ}s": & NOISE10,40,10:CO% = CO% - 1
 10700  IF CO% = 0 THEN  PRINT "Vous fuyez"
 10710  GOTO 27200
 10720  REM  REDITION
 10730  IF M1%(0,1) = 1 OR M1%(0,1) = 4 THEN  PRINT "Il refuse": GOTO 10010
 10740  IF M%(0,1) < M%(1,1) / 2 THEN "Il accepte": GOTO 4150
 10790  GOTO 20510
 10800  REM  DETROUSSER
 10810  IF M1%(0,1) = 1 OR M1%(0,1) = 4 THEN  PRINT "Il refuse": GOTO 10010
 10820  IF M2%(0,1) / M2%(1,1) >  = KC%(5) / KA%(5) THEN  PRINT "Il refuse": GOTO 10010
 10830  PRINT "Il vous donne   son or":GP% = GP% + M1%(0,3): GOTO 4150
 11000  REM  COMBAT A DISTANCE 
 11010  IF OB%(AR%,1) < 4 THEN 10050
 11020  PRINT "Vous visez": GOSUB 27900
 11030 SC% =  RND (1) * (KC%(3) + KC%(4)) / 2 -  RND (1) * M2%(0,4)
 11040 DG% = SC% -  RND (1) * M2%(0,6) / 2 +  RND (1) * OB%(AR%,5)
 11050 A$ = "et touchez"
 11060  GOTO 27600
 11500  REM  MONSTRE
 11502  GOSUB 26200
 11505  IF M2%(0,1) < 0 THEN 26000
 11510  IF M2%(0,1) < M2%(1,1) / 2 AND M2%(0,2) <  > 1 THEN 11700
 11515  IF M1%(0,6) <  > 0 THEN 25000
 11520  PRINT "Il avance"
 11530  PRINT "D'accord(O/N)";
 11535  GET A$: IF A$ = "N" OR A$ = "O" THEN  PRINT 
 11540  IF A$ = "O" THEN 11600
 11550  IF A$ = "N" THEN 11570
 11560  GOTO 11535
 11570  IF  RND (1) * (KC%(4) - EN%) >  RND (1) * M2%(0,4) THEN  PRINT "sans succ}s": GOTO 10010
 11600  PRINT "Il se rapproche": & NOISE10,40,10
 11610 CO% = CO% + 1: GOTO 10010
 11700  REM  RECUL
 11710  PRINT "Il recule"
 11720  PRINT "D'accord(O/N)";
 11725  GET A$: IF A$ = "O" OR A$ = "N" THEN  PRINT 
 11730  IF A$ = "O" THEN 11800
 11740  IF A$ = "N" THEN 11760
 11750  GOTO 11725
 11760  IF  RND (1) * (KC%(4) - EN%) =  <  RND (1) * M2%(0,4) THEN 11800
 11770  PRINT "sans succ}s"
 11780  GOTO 10010
 11800  PRINT "Il r{ussit": & NOISE10,40,10
 11810 CO% = CO% - 1
 11820  IF CO% = 0 THEN  PRINT "et fuit": GOTO 4150
 11830  GOTO 10010
 12000  REM  COMBAT DE MELEE
 12010  IF OB%(AR%,1) = 4 THEN 10050
 12020  PRINT "Vous attaquez": GOSUB 27900
 12030 SC% =  RND (1) * KC%(3) -  RND (1) * M2%(0,4)
 12040 DG% = SC% -  RND (1) * M2%(0,6) +  RND (1) * OB%(AR%,5)
 12050 A$ = "et frappez"
 12060  GOTO 27600
 12500  REM  MONSTRE
 12502  GOSUB 26200
 12505  IF M2%(0,1) < 0 THEN 26000
 12507  IF M2%(0,1) < M2%(1,1) / 2 AND M1%(0,1) <  > 1 THEN 11700
 12510  IF M2%(0,8) > M2%(0,7) THEN 11520
 12515  IF  RND (1) * M2%(0,2) >  RND (1) * M2%(0,1) AND M1%(0,6) <  > 0 THEN  GOTO 25000
 12525  PRINT "Il attaque"
 12530 SC% =  RND (1) * M2%(0,3) -  RND (1) * (KC%(4) - EN%)
 12550 A$ = "et frappe"
 12560 DG% = SC% -  RND (1) * (OB%(AR%,6) + OB%(PA%,5)) +  RND (1) * M2%(0,7)
 12570  GOTO 27800
 13000  REM  COMBAT RAPPROCHE
 13010  IF OB%(AR%,1) <  > 0 THEN  GOTO 10050
 13020  PRINT "Vous luttez": GOSUB 27900
 13030 SC% =  RND (1) * KC%(3) -  RND (1) * M2%(0,4)
 13040 DG% = SC% -  RND (1) * M2%(0,6) / 2 +  RND (1) * OB%(AR%,5)
 13050 A$ = "avec succ}s"
 13060  GOTO 27600
 13500  REM  MONSTRE
 13502  GOSUB 26200
 13505  IF M2%(0,1) < 0 THEN 26000
 13510  IF M2%(0,1) < M2%(1,1) / 2 AND M1%(0,1) <  > 1 THEN 11700
 13540  PRINT "Il lutte"
 13560 SC% =  RND (1) * M2%(0,3) -  RND (1) * (KC%(4) - EN%)
 13580 A$ = "avec succ}s"
 13590 DG% = SC% +  RND (1) * M2%(0,8) - OB%(PA%,5) *  RND (1)
 13600  GOTO 27800
 14000  REM SORTS
 14010  REM  GUERISON
 14020 KC%(5) = KC%(5) +  FN S(S2%) + 1
 14030  IF KC%(5) > KA%(5) THEN KC%(5) = KA%(5)
 14040  GOTO 27300
 14100  REM  ECLAIR
 14110  IF CO% = 0 THEN 4150
 14120 DG% =  FN S(S2%) +  RND (1) * KC%(7) -  RND (1) * M2%(0,4)
 14170 KC%(6) = KC%(6) - PM%
 14180  & SOUND255,7 * S2%
 14190  GOTO 27750
 14200  REM  FORCE
 14210  IF CO% = 0 THEN 4150
 14220 KC%(3) = KA%(3) +  FN S(S2%) + 1
 14240  GOTO 27300
 14300  REM  VITESSE
 14310  IF CO% = 0 THEN 4150
 14320 KC%(4) = KA%(4) +  FN S(S2%) + 1 - EN%
 14340  GOTO 27300
 14400  REM  PROTECTION
 14410  IF PR% >  = 3 + S2% THEN 27200
 14420 PR% = 3 + S2%
 14440  GOTO 27300
 14500  REM  EXORCISME
 14505  IF CO% = 0 THEN 4150
 14510 M2%(0,2) = M2%(0,2) -  FN S(S2%) - 1
 14520  IF M2%(0,2) < 0 THEN M2%(0,2) = 0
 14530  IF M2%(0,2) = 0 AND (M% = 20 OR M% = 21) THEN M2%(0,1) =  - 1
 14540  GOTO 27300
 14600  REM  ADRESSE
 14620 KC%(7) = KA%(7) +  FN S(S2%) + 1
 14640  GOTO 27300
 14700  REM  DETECTION
 14710  IF CO% <  > 0 THEN 10020
 14720 KC%(8) = KA%(8) +  FN S(S2%) + 1
 14740  GOTO 27300
 14800  REM  FAIBLESSE
 14810  IF CO% = 0 THEN 4150
 14820 M2%(0,3) = M2%(0,3) -  FN S(S2%) - 1
 14830  IF M2%(0,3) < 0 THEN M2%(0,3) = 0
 14840  GOTO 27300
 14900  REM  PARALYSIE
 14910  IF CO% = 0 THEN 4150
 14920 M2%(0,4) = M2%(0,4) -  FN S(S2%) - 1
 14930  IF M2%(0,4) < 0 THEN M2%(0,4) = 0
 14940  GOTO 27300
 15000  GOSUB 8300
 15010  GOTO 4150
 15030  IF OB% = 0 THEN 4150
 15035 A =  USR (2)
 15040  FOR I = 1 TO OB%
 15045  PRINT I;")";
 15050  IF I = AR% OR I = PR% OR I = PA% THEN  INVERSE 
 15060  PRINT OB$(I)
 15070  NORMAL : CALL 6138
 15080  NEXT I
 15090 A =  USR (3): GOTO 4150
 15099  REM  EQUIPEMENT
 15100  GOSUB 8000: GOTO 4150
 16000  REM  TROUVER OBJET
 16010  PRINT "Vous trouvez :"
 16020  PRINT EQ$(W%): PRINT 
 16030  IF OB% = 9 THEN 16500
 16040  PRINT "Prendre (O/N)";
 16050  GET A$
 16060  IF A$ = "O" THEN  PRINT : GOTO 16090
 16070  IF A$ = "N" THEN  PRINT : GOTO 4150
 16080  GOTO 16050
 16090 OB% = OB% + 1
 16100 OB$(OB%) = EQ$(W%)
 16110  FOR I = 1 TO 6:OB%(OB%,I) = EQ%(W%,I): NEXT I
 16120  IF AD% <  > 0 THEN  CALL AD%
 16190  GOTO 4150
 16500  PRINT "T'as d{j@ 9 ob- jets, Nabot!!": PRINT 
 16510  PRINT "Faire de la     place (O/N)";
 16520  GET A$
 16530  IF A$ <  > "O" AND A$ <  > "N" THEN 16520
 16540  IF A$ = "N" THEN  PRINT : GOTO 4150
 16550  PRINT : GOSUB 8300
 16560  IF OB% = 9 THEN  PRINT : PRINT "Tu te d{cides,  raclure de nain": PRINT : GOTO 16510
 16590  PRINT : GOTO 16040
 17000 W% =  PEEK (18781):AD% = 16974
 17010  IF W% = 1 THEN W% = 2: GOTO 16030
 17020  IF W% = 2 THEN W% = 3: GOTO 16030
 17030  IF W% = 3 THEN W% = 5: GOTO 16030
 17060  GOTO 16030
 18000  PRINT : PRINT "Reprendre       (O/N)";
 18010  GET A$
 18020  IF A$ = "N" THEN  TEXT : HOME : CALL 50688
 18030  IF A$ <  > "O" THEN 18010
 18040  PRINT : PRINT "Ins{rez la face de BOOT et pres-sez une touche";
 18050  GET A$
 18060 A =  USR (0): &  READ "PLAYER": INPUT F$: &  END :A =  USR (1)
 18070  IF F$ <  > "*START*" THEN 18040
 18080  CLEAR : & SCRN0,0: & WINDOW0,40,0,24: HOME : TEXT :A =  USR (0): &  RUN "LINKER.CONT",24576
 20000  REM  MONSTRE
 20010 A$ = "":CO% = 2
 20035  IF  RND (1) * (M1%(0,2) + KC%(8)) >  RND (1) * (KC%(4) + M2%(0,4)) THEN CO% = 1
 20040  IF KC%(4) < EN% THEN KC%(4) = EN%
 20050  IF  RND (1) * (KC%(4) + KC%(8) - EN%) <  RND (1) * (M1%(0,2) + M2%(0,4)) THEN 20100
 20060  PRINT : PRINT "Vous combattez ? (O/N)";
 20070  GET A$
 20080  IF A$ = "O" THEN  PRINT : GOTO 10010
 20085  IF A$ = "N" THEN  PRINT : GOTO 20100
 20090  GOTO 20070
 20100  PRINT : REM  REACTION
 20105  ON M1%(0,1) GOTO 20120,20200,20300,20400,20500,20600,20700
 20110  PRINT : REM  ATTAQUE  
 20120  PRINT "Il engage le com-bat": GOTO 27200
 20200  REM  HOSTILE
 20210  IF  INT ( RND (1) * 20) + 1 > KA%(5) THEN  PRINT "Il vous ignore": GOTO 20900
 20220  GOTO 20120
 20300  REM  AMICAL
 20310  IF  INT ( RND (1) * 20) < KA%(6) THEN  PRINT "Il vous salue": GOTO 20900
 20320  GOTO 20510
 20400  REM  GOLEM
 20410 V% = 0
 20415  FOR I = 1 TO OB%
 20420  IF OB%(I,1) = 43 THEN V% = 1
 20425  NEXT I
 20430  IF V% = 1 THEN 20450
 20440  PRINT "Vous n'avez pas le parchemin": GOTO 10000
 20450  PRINT "Il disparait"
 20460  CALL 19329
 20490  GOTO 4150
 20500  REM  BANDIT
 20510  PRINT "Il veut votre or (O/N)";
 20520  GET A$
 20530  IF A$ = "N" THEN  PRINT : GOTO 20110
 20540  IF A$ = "O" THEN  PRINT : GOTO 20560
 20550  GOTO 20520
 20560 GP% = GP% - M1%(0,3) - M1%(0,4): IF GP% < 0 THEN GP% = 0
 20590  GOTO 4150
 20600  REM  BARBARE
 20610  IF KA%(1) >  = 15 THEN  PRINT "Mort au sorcier": GOTO 20120
 20620  IF RA% = 5 GOTO 20200
 20640  GOTO 20300
 20700  REM  PRETRE
 20710  PRINT "Faites un don   aux pauvres": PRINT 
 20720  PRINT "Combien donnez  vous : ";
 20725 L1% = 48:L2% = 57:L3% = 2: GOSUB 2000:DO% =  VAL (B$): PRINT 
 20730  IF DO% > GP% THEN DO% = GP%
 20740 GP% = GP% - DO%
 20750  IF DO% = 0 AND GP% > 0 THEN  PRINT : GOTO 20300
 20760  PRINT : PRINT "Il vous b{nit"
 20770 S2% =  INT (DO% / 10) + 1: IF S2% > 5 THEN S2% = 5
 20780 CO% = 0:PM% = 0: GOTO 14010
 20890  GOTO 4150
 20900  REM  REACTION
 20905  PRINT 
 20906  IF A$ = "O" OR A$ = "N" THEN 20930
 20910  PRINT "Vous combattez ? (O/N)";
 20920  GET A$
 20930  IF A$ = "O" THEN  PRINT : GOTO 10010
 20940  IF A$ = "N" THEN  PRINT : GOTO 4150
 20960  GOTO 20920
 21000  REM   UTILISER 
 21010  REM  OBJ.MAG.
 21020  IF OB%(V%,5) > 20 THEN 27500
 21030  IF  INT ( RND (1) * 20) + 1 =  < OB%(V%,5) THEN OB%(V%,5) = OB%(V%,5) + 20
 21035 PM% = 0
 21040 S1% = (OB%(V%,6) - 1) / 5 + 1
 21050 S2% = OB%(V%,6) - S1% * 5 + 5
 21065  PRINT OB$(V%)
 21070  ON S1% GOTO 14010,14100,14200,14300,14400,14500,14600,14700,14800,14900
 21500  REM  FOCUS
 21510 PM% = OB%(V%,5)
 21520  IF PM% > KC%(6) THEN 27500
 21530  GOTO 21040
 22000  REM  EFFET DES COUPS
 22010  IF DG% =  < PV% / 8 THEN  PRINT "Une {gratignure": & NOISE1,40,50: RETURN 
 22020  IF DG% =  < PV% / 4 THEN  PRINT "Un coup l{ger": & NOISE1,40,100: RETURN 
 22030  IF DG% =  < PV% / 2 THEN  PRINT "Un coup grave": & NOISE1,40,150: RETURN 
 22040  PRINT "Un coup d{cisif": & NOISE1,40,255: RETURN 
 25000  ON M1%(0,6) GOTO 25100,25200,25300,25400,25500,25600
 25100  REM   MANTICORE 
 25110  PRINT "Il lance un dard"
 25130 SC% =  RND (1) * M2%(0,4) -  RND (1) * (KC%(4) - EN%)
 25140 A$ = "et touche"
 25150 DG% = SC% +  RND (1) * 10 -  RND (1) * PA%
 25160  GOTO 27800
 25200  REM  MAGE
 25210  PRINT "Il entonne un   sortil}ge"
 25215  & SOUND27,100
 25220 M2%(0,6) = M2%(0,6) - 1
 25230 DG% =  RND (1) * 6 +  RND (1) * M2%(0,4) -  RND (1) * (KC%(4) - EN%) - OB%(PR%,5)
 25250  GOTO 27860
 25300  REM  NECROMANT
 25305  IF M% = 24 THEN  PRINT "Il envoie une   boule de feu": GOTO 25315
 25310  PRINT "Il emploie sa   baguette"
 25315  & SOUND46,100
 25320 M2%(0,6) = M2%(0,6) - 1
 25330 DG% =  RND (1) * 18 +  RND (1) * M2%(0,4) -  RND (1) * (KC%(4) - EN%) - OB%(PR%,5)
 25340  GOTO 27860
 25400  REM  XORN
 25405  IF AR% = 0 OR OB$(AR%) = "Ferraille" THEN 27250
 25410  PRINT "Il mange votre  arme"
 25420 OB%(AR%,5) = 0:OB%(AR%,6) = 0
 25430 OB$(AR%) = "Ferraille":OB%(AR%,2) = 0
 25490  GOTO 10010
 25500  REM  ZOMBIE
 25505  IF M2%(0,2) =  < M2%(0,1) THEN  GOTO 27250
 25510  PRINT "Il r{g{n}re"
 25515  & NOISE99,70,7
 25520  IF M2%(0,1) > M2%(0,2) THEN  GOTO 10010
 25530 M2%(0,1) =  RND (1) * (M2%(0,2) - M2%(0,1)) + M2%(0,1)
 25540  GOTO 10010
 25600  REM  PRETRE
 25605  IF M2%(0,1) >  = M2%(1,1) THEN 27250
 25610  PRINT "Il marmonne une pri}re"
 25615  & NOISE5,1,100
 25620 M2%(0,2) = M2%(0,2) - 1
 25630 M2%(0,1) = M2%(0,1) +  RND (1) * 6 + 1
 25640  IF M2%(0,1) > M2%(1,1) THEN M2%(0,1) = M2%(1,1)
 25650  GOTO 10010
 26000  REM FIN COMBAT
 26010  PRINT MO$( INT ( RND (1) * 6) + 1): IF M% <  > 22 THEN  POKE 18780,1: REM BUTE
 26020 GP% = GP% + M1%(0,3): PRINT : PRINT "Argent....:+"M1%(0,3)
 26030 XP% = XP% + M1%(0,4): PRINT "Exp{rience:+"M1%(0,4): PRINT 
 26040  & SOUND40,40: & SOUND40,40: & SOUND100,50
 26050  FOR I = 1 TO 4
 26060  IF KC%(I) > KA%(I) THEN KC%(I) = KA%(I)
 26070  NEXT I
 26080  IF M1%(1,5) <  > 0 THEN AD% = 0:W% = M1%(1,5): GOTO 16010
 26090  GOTO 4150
 26100  REM  MISE A JOUR
 26105 P% =  PEEK (37)
 26110  VTAB 2: HTAB 2: PRINT NM$;
 26120  VTAB 3: HTAB 2: PRINT "Vit:";
 26130  HTAB 9: PRINT "Mag:";
 26140  VTAB 4: HTAB 2: PRINT "Arg:";
 26150  VTAB 5: HTAB 2: PRINT "Exp:";
 26190  GOTO 26205
 26200 P% =  PEEK (37)
 26205  VTAB 3: HTAB 6: PRINT KC%(5);" ";
 26210  HTAB 13: PRINT KC%(6);" ";
 26220  VTAB 4: HTAB 6: PRINT GP%;"  ";
 26230  VTAB 5: HTAB 6: PRINT XP%;"  ";
 26240  VTAB 7: HTAB 2: PRINT  SPC( 14)
 26245  IF CO% = 0 THEN  VTAB 6: HTAB 2: PRINT  SPC( 14): GOTO 26270
 26260  VTAB 7: HTAB 2: PRINT ST$(CO%)
 26270  VTAB P% + 1: HTAB 1
 26300  RETURN 
 27000  REM  SOUS-PROG
 27100  REM  RETOUR COMBAT PERSO
 27110  ON CO% + 1 GOTO 4150,11000,12000,13000
 27200  REM  RETOUR COMBAT MONSTRE
 27210  IF CO% <  > 0 THEN  PRINT 
 27220  ON CO% + 1 GOTO 4150,11500,12500,13500
 27250  ON CO% GOTO 11520,12525,13540
 27300  REM  RETOUR SORT
 27310 KC%(6) = KC%(6) - PM%
 27320  IF CO% <  > 0 THEN  PRINT 
 27330  & SOUND255,7 * S2%
 27340  ON CO% + 1 GOTO 4150,11500,12500,13500
 27400  REM  CHOIX OBJET
 27410  GET A$:V% =  VAL (A$)
 27420  IF V% < 0 OR V% > OB% THEN 27410
 27430  IF A$ = "0" THEN  PRINT : RETURN 
 27440  IF V% = 0 THEN 27410
 27450  RETURN 
 27500  REM  ERREUR DU PERSO
 27510  ON CO% + 1 GOTO 4150,10010,10010,10010
 27600  REM  
 27640  IF SC% > 0 THEN 27660
 27650  PRINT "et ratez": & NOISE10,55,20: GOTO 27200
 27660  PRINT A$
 27730  IF DG% =  < 0 THEN  PRINT "Il pare": & SOUND35,2: GOTO 27200
 27750 DG% = DG% - M2%(0,5)
 27760  IF DG% =  < 0 THEN  PRINT "Sans effet": & NOISE1,255,90: GOTO 27200
 27770 M2%(0,1) = M2%(0,1) - DG%
 27780 PV% = M2%(1,1): GOSUB 22000
 27790  GOTO 27200
 27800  REM  COMBAT MONSTRE
 27810  IF SC% > 0 THEN 27830
 27820  PRINT "et rate": & NOISE10,55,20: GOTO 27500
 27830  PRINT A$
 27840  IF DG% =  < 0 THEN  PRINT "Vous parez": & SOUND35,2: GOTO 27500
 27850 DG% = DG% - OB%(PR%,5)
 27860  IF DG% =  < 0 THEN  PRINT "Sans effet": & NOISE1,255,90: GOTO 27500
 27870 KC%(5) = KC%(5) - DG%
 27880 PV% = KA%(5): GOSUB 22000
 27890  GOTO 27500
 27900  REM  ARMES
 27910  IF AR% = 0 THEN  PRINT "@ mains nues": RETURN 
 27920  IF  RIGHT$ (OB$(AR%),1) = "s" THEN  PRINT "avec vos": GOTO 27940
 27930  PRINT "avec votre"
 27940  PRINT OB$(AR%): RETURN 
 30000  REM  PIEGES
 30100  REM  DETECTER  
 30110 V% =  PEEK (18781): REM NUMERO PIEGE
 30120  PRINT : PRINT PI$(V%)
 30130  IF  RND (1) * KC%(8) + 1 >  = PI%(V%,1) THEN 30150
 30140  GOTO 30200
 30150  PRINT "Vous avez rep{r{le pi}ge"
 30160  PRINT : PRINT "D{samorcer      (O/N)";
 30170  GET A$
 30180  IF A$ = "O" THEN  PRINT : GOTO 30300
 30190  IF A$ = "N" THEN  PRINT : GOTO 4150
 30195  GOTO 30170
 30200  REM  DEGATS
 30210  PRINT "Le m{canisme se d{clenche"
 30220 SC% =  RND (1) * PI%(V%,3) -  RND (1) * (KC%(4) - EN%)
 30230 DG% = SC% +  RND (1) * PI%(V%,4)
 30240 A$ = "Vous vous ~tes  laiss{ avoir"
 30250 CO% = 0: GOTO 27800
 30260  GOTO 4150
 30300  REM  DESAMORCER
 30310  IF  INT ( RND (1) * KC%(7) + 1) < PI%(V%,2) THEN 30200
 30320  PRINT "Vous r{ussissez"
 30330  CALL 19329: REM CALL REMPLAS0
 30340  GOTO 4150
